<?php
declare (strict_types = 1);

namespace app\api\controller;
use thans\jwt\facade\JWTAuth;
use think\Request;
use app\BaseController;
use think\exception\ValidateException;

class Auth extends BaseController
{

    /**
     * @return \think\response\Json
     */
    public function login()
    {
        try {
            $this->validate($this->request->param() , [
                'name'  => 'require|max:25',
                'age'   => 'number|between:1,120',
                'email' => 'email',
            ] , [
                'name.require' => '名称必须',
                'name.max'     => '名称最多不能超过25个字符',
                'age.number'   => '年龄必须是数字',
                'age.between'  => '年龄只能在1-120之间',
                'email'        => '邮箱格式错误',
            ]);
        }catch (ValidateException $e){
            dump($e->getError());
        }


        $token = JWTAuth::builder(['uid' => 1]);//参数为用户认证的信息，请自行添加
        return json(['token' => $token]);
    }

    public function check(): \think\response\Json
    {
        $payload = JWTAuth::auth(); //可验证token, 并获取token中的payload部分
        return json($payload);
    }
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        //
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        //
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        //
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        //
    }
}
